/**
 * 先用节气的顺序决定双方获得的点数，首先有一个简单的条件判断
 * 然后再从各自的点数中拿出最大的牌型，比大小
 * 如果打平，扔掉当前牌，再拿出最大牌型比大小，如此反复
 * 问先手是否胜
 * 牌型注意，不是德州的5张牌，只用核心数量，例如四条就只拿四张牌，对子就只拿两张牌，高牌就只拿一张牌
 * 牌型相同纯按字典序比大小，因此葫芦的时候注意，对子有可能排在前面
 */
#include <bits/stdc++.h>
using namespace std;

using llt = long long;
using vi = vector<int>;
using pii = pair<int, int>;

array<vi, 25> Jie {
    vi{0},
    {2, 4},
    {2, 1, 9},
    {3, 5},
    {3, 2},
    {4, 4},
    {4, 1, 9},
    {5, 5},
    {5, 2},
    {6, 5},
    {6, 2, 1},
    {7, 6},
    {7, 2, 2},
    {8, 7},
    {8, 2, 2},
    {9, 7},
    {9, 2, 2},
    {1, 8},
    {1, 2, 3},
    {1, 1, 7},
    {1, 1, 2, 2},
    {1, 2, 6},
    {1, 2, 2, 1},
    {1, 6},
    {1, 2}
};

int A, B, C, D, E;

vi Xian, Hou;
map<int, int> U, V;

vi f(int a, int b, int c) {
    vi ans;
    ans.insert(ans.end(), Jie[a].begin(), Jie[a].end());
    ans.insert(ans.end(), Jie[b].begin(), Jie[b].end());
    ans.insert(ans.end(), Jie[c].begin(), Jie[c].end());
    sort(ans.begin(), ans.end());
    return ans;
}

bool proc1(){
    int a = accumulate(Xian.begin(), Xian.end(), 0);
    int b = accumulate(Hou.begin(), Hou.end(), 0);
    if(a > 16) a = 0;
    if(b > 16) b = 0;
    if(a > b) return true;
    return false;
}

pair<int, vi> get(map<int, int> & pai) {
    if(pai.empty()) return {8, vi{}};

    /// 判四条
    for(auto it=pai.rbegin();it!=pai.rend();++it){
        if(it->second >= 4){  
            auto tmp = it->first;
            it->second -= 4;
            if(0 == it->second) pai.erase(it->first);
            return {1, vi{tmp, tmp, tmp, tmp}};
        }
    }
    /// 判葫芦
    int three = 0, two = 0;
    for(auto it=pai.rbegin();it!=pai.rend();++it){
        if(it->second >= 3){
            if(0 == three){
                three = it->first;
            }else if(0 == two){
                two = it->first;                
            }
        }else if(it->second >= 2){
            if(0 == two) two = it->first;
        }

        if(three and two){
            auto jt = pai.find(three);
            jt->second -= 3;
            if(0 == jt->second) pai.erase(jt);

            jt = pai.find(two);
            jt->second -= 2;
            if(0 == jt->second) pai.erase(jt);

            if(three > two){
                return {2, vi{three, three, three, two, two}};
            }
            return {2, {two, two, three, three, three}};
        }
    }
    /// 判顺子
    for(auto it=pai.rbegin();it!=pai.rend();++it){
        auto start = it->first;
        bool b = true;
        for(int i=0;i<5;++i){
            if(pai.find(start - i) == pai.end()){
                b = false;
                break;
            }
        }
        if(b){
            for(int i=0;i<5;++i){
                auto jt = pai.find(start - i);
                jt->second -= 1;
                if(0 == jt->second) pai.erase(jt->first);
            }
            return {3, vi{start, start - 1, start - 2, start - 3, start - 4}};
        }
    }
    /// 判三条
    for(auto it=pai.rbegin();it!=pai.rend();++it){
        if(it->second >= 3){
            auto tmp = it->first;
            it->second -= 3;
            if(0 == it->second) pai.erase(it->first);
            return {4, vi{tmp, tmp, tmp}};
        }
    }
    /// 判两对
    int d1 = 0, d2 = 0;
    for(auto it=pai.rbegin();it!=pai.rend();++it){
        if(it->second >= 2){
            if(0 == d1) d1 = it->first;
            else if(0 == d2) d2 = it->first;
        }
        if(d1 and d2){
            auto jt = pai.find(d1);
            jt->second -= 2;
            if(0 == jt->second) pai.erase(jt);

            jt = pai.find(d2);
            jt->second -= 2;
            if(0 == jt->second) pai.erase(jt);

            return {5, vi{d1, d1, d2, d2}};
        }
    }
    /// 判对子
    for(auto it=pai.rbegin();it!=pai.rend();++it){
        if(it->second >= 2){
            auto two = it->first;
            it->second -= 2;
            if(0 == it->second) pai.erase(two);
            return {6, vi{two, two}};
        }
    }

    auto it = --pai.end();
    auto a = it->first;
    it->second -= 1;
    if(0 == it->second) pai.erase(it);
    return {7, vi{a}};
}

int cmp(){
    auto pa = get(U);
    auto pb = get(V);
    if(pa.first != pb.first) return pa.first < pb.first ? 1 : -1;
    
    const auto & va = pa.second;
    const auto & vb = pb.second;
    assert(va.size() == vb.size());
    for(int i=0;i<va.size();++i){
        if(va[i] != vb[i]){
            return va[i] > vb[i] ? 1 : -1;
        }
    }

    return 0;
}

bool proc2(){
    U.clear(); V.clear();
    for(auto i : Xian) U[i] += 1;
    for(auto i : Hou) V[i] += 1;
    while(not U.empty() and not V.empty()){
        int t = cmp();
        if(t) return t >= 1;
    }
    return false;
}

void work(){
    cin >> A >> B >> C >> D >> E;
    Xian = f(A, B, D);
    Hou = f(A, C, E);
    auto b1 = proc1();
    auto b2 = proc2();
    if(b1 and b2){
        cout << "I Will Win\n";
    }else{
        cout << "Who Will Win\n";
    }
    return;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);

    int nofkase = 1;
    cin >> nofkase;
    while(nofkase--) work();
    return 0;
}
